//
// Box.hh for Bomberman in /home/lefebv_w//workspace/cpp/bomberman/googleCode/level
// 
// Made by damien lefebvre
// Login   <lefebv_w@epitech.net>
// 
// Started on  Sat May 11 17:21:40 2013 damien lefebvre
// Last update Mon May 27 20:09:29 2013 damien lefebvre
//

#ifndef		__BOX_HH__
#define		__BOX_HH__

/* gdl includes */
#include	<GameClock.hpp>
#include	<Input.hpp>
#include	<Image.hpp>

/* my includes */
#include	"ABackground.hh"
#include	"Vector3f.hh"
#include	"Floor.hh"
#include	"Wall.hh"
#include	"Till.hh"

class		Box
{
public :
  typedef	enum
    {
      PLAYER, MOB, EMPTY, BOMB
    }		t_OnCase;

  typedef	enum
    {
      FLOOR, WALL, TILL
    }		t_TypeOfCase;

private :
  t_OnCase		m_status;
  t_TypeOfCase		m_type;
  Vector3f		m_position;
  float			m_size;
  std::string		m_texPath;
  bool			m_wall;
  ABackground *		m_model;

public :
  Box(Vector3f const & position, float size, t_TypeOfCase type, std::string const & texPath);
  
  ~Box(void);

  void		initialize(void);
  void		update(gdl::GameClock const & gameClock, gdl::Input & input);
  void		draw(void);
};

#endif
